package protobuf.Serialization;

import org.springframework.stereotype.Component;
import protobuf.ProtoInstance;
import protobuf.protoClass.ProtoMsg;

@Component("LoginResponseConverter")
public class LoginResponseMsgConverter {

    public LoginResponseMsgConverter() {

    }

    /**
     * 创建 {@link ProtoMsg.Message} ,信息类型为 LoginResponse 登录响应信息，服务器对客户端登录进行响应
     *
     * @param stateCodeEnum 客户端登录状态码
     * @param sequence      信息序列号
     * @param sessionId     session唯一标识
     * @return 登录响应信息
     */
    public ProtoMsg.Message build(
            ProtoInstance.LoginResponseStateCodeEnum stateCodeEnum, long sequence, String sessionId) {

        return ProtoMsg.Message.newBuilder()
                .setType(ProtoMsg.HeadType.LOGIN_RESPONSE)
                .setSequence(sequence)
                .setSessionId(sessionId)
                .setLoginResponse(
                        ProtoMsg.LoginResponse.newBuilder()
                                .setCode(stateCodeEnum.getCode())
                                .setInfo(stateCodeEnum.getDesc())
                                .setExpose(1))  //错误描述是否提示给用户:1 提示;0 不提示
                .build();
    }

}
